package com.xunge.service;

import com.xunge.pojo.JobOption;
import com.xunge.pojo.StudentOption;

import java.util.List;
import java.util.Map;

public interface ReportService {
    /**
     * 统计员工职位信息
     * @return 职位统计信息
     */
    JobOption getEmpJobData();

    /**
     * 统计员工性别信息
     * @return 性别统计信息
     */
    List<Map<String, Object>> getEmpGenderData();

    /**
     * 统计学生信息
     * @return 学生统计信息
     */
    StudentOption countStudentData();

    /**
     * 统计学员学历信息
     * @return 学历统计信息
     */
    List<Map<String, Object>> getStudentDegreeData();

    /**
     * 统计学员性别信息
     * @return 性别统计信息
     */
    List<Map<String, Object>> getStudentGenderData();

    /**
     * 统计平时成绩分布
     * @param semester 学期，为空时统计所有学期
     * @return 平时成绩统计信息
     */
    List<Map<String, Object>> getGradeUsualData(String semester);

    /**
     * 统计期中成绩分布
     * @param semester 学期，为空时统计所有学期
     * @return 期中成绩统计信息
     */
    List<Map<String, Object>> getGradeMidtermData(String semester);

    /**
     * 统计期末成绩分布
     * @param semester 学期，为空时统计所有学期
     * @return 期末成绩统计信息
     */
    List<Map<String, Object>> getGradeFinalData(String semester);

    /**
     * 统计总评成绩分布
     * @param semester 学期，为空时统计所有学期
     * @return 总评成绩统计信息
     */
    List<Map<String, Object>> getGradeTotalData(String semester);

    /**
     * 获取所有学期
     * @return 学期列表
     */
    List<String> getSemesters();
}
